
This resource address creates a new rule for the specified alert action.
Upon success, MarkLogic Server returns status code 202 (Accepted). If the alert already exists or if the payload is malformed, a status code of 400 (Bad Request) is returned. A status code of 401 (Unauthorized) is returned if the user does not have the necessary privileges.
manage-admin rolehttp://marklogic.com/xdmp/privileges/manage-admin
http://marklogic.com/xdmp/privileges/manage privilege, plus one of the following privileges:
http://marklogic.com/xdmp/privileges/admin/databasehttp://marklogic.com/xdmp/privileges/admin/database/database-IDhttp://marklogic.com/xdmp/privileges/admin/database/alerts/database-IDThe structure of the data in a create rule request is as shown below.
Note: The properties described here are for XML payloads. In general they are the same for
JSON, with the exception that options is expressed in singular form.
namedescriptionuser-idqueryaction-nameexternal-security-iduser-nameoptions
curl -X POST --anyauth --user admin:admin --header "Content-Type:application/json" \
-d '{
"name": "my-rule",
"description": "log to ErrorLog.txt",
"user-name": "manageadmin",
"query": {
"wordQuery": {
"text": "Yorick"
}
},
"action-name": "",
"option": []
}' \
http://localhost:8002/manage/v2/databases/Documents/alert/actions/xdmp:log2/rules?uri=my-alert-config
==> Creates a new rule, named "my-rule", for the alert action, "xdmp:log2."
curl -X POST --anyauth --user admin:admin --header "Content-Type:application/json" \
-d '{
"name": "my-query-rule",
"description": "log to ErrorLog.txt",
"user-name": "admin",
"query": {
"orQuery": {
"queries": [
{
"notQuery": {
"query": {
"collectionQuery": {
"uris": [
"latest"
]
}
}
}
},
{
"collectionQuery": {
"uris": [
"uni-temporal"
]
}
},
{
"elementRangeQuery": {
"element": [
"systemEnd"
],
"operator": ">",
"value": [
{
"type": "dateTime",
"val": "2021-12-01T00:00:00"
}
]
}
},
{
"notQuery": {
"query": {
"collectionQuery": {
"uris": [
"very good"
]
}
}
}
}
]
}
},
"action-name": "",
"option": []
}' \
http://localhost:8002/manage/v2/databases/Documents/alert/actions/xdmp:log2/rules?uri=my-alert-config
==> Creates a new rule, named "my-query-rule", for the alert action, "xdmp:log2."
curl -X POST --anyauth --user admin:admin --header "Content-Type:application/xml" \
-d '<alert-rule-properties xmlns="http://marklogic.com/manage/alert-rule/properties">
<name>my-query-rule</name>
<description>Description for XML</description>
<query>
<cts:and-query xmlns:cts="http://marklogic.com/cts">
<cts:not-query>
<cts:collection-query>
<cts:uri>newest</cts:uri>
</cts:collection-query>
</cts:not-query>
<cts:collection-query>
<cts:uri>uni-temporal</cts:uri>
</cts:collection-query>
<cts:element-range-query operator=">">
<cts:element>systemEnd</cts:element>
<cts:value xsi:type="xs:dateTime" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2021-12-01T00:00:00</cts:value>
</cts:element-range-query>
</cts:and-query>
</query>
</alert-rule-properties>' \
http://localhost:8002/manage/v2/databases/Documents/alert/actions/xdmp:log2/rules?uri=my-alert-config
==> Creates a new rule with input of XML, named "my-query-rule", for the alert action, "xdmp:log2."
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.